#include <iostream>

using namespace std;

class Figura {
public:
	string nazwa;
	float powierzchnia;
	static int liczbaObiektow; 

public:
	Figura(string naz, float pow);
	~Figura(); //czy tu sie cos powinno dziac w tym destruktorze? kazala zrobic ale przeciez nie ma dynamicznej alokacji pamieci? a chyba wtedy to ma sens. O no i widze pytanie jest z tym zwiazane w zadaniu 1.
	friend ostream & operator<<(ostream & ekran, Figura & b);
	void static wypisz();

};

class Kolo :public Figura {
public:
	float r;
	//co z polami dziedziczacymi? powinien byc konstruktor dla nich w tej klasie? 
public:
	Kolo(float promien, string naz, float pow);
	Kolo(Kolo &that);
	~Kolo();
	friend ostream & operator<<(ostream & ekran, Kolo & b);


};

class Kwadrat :public Figura {
public:
	float bok;

public:
	Kwadrat(float b, string naz, float pow);
	~Kwadrat(); //co z tymi konstruktorami i destruktorem we wszystkich zadaniach :< ? chce byc taka madra jak ty ;< :D:D
	friend ostream & operator<<(ostream & ekran, Kwadrat & b);


};


class Prostokat :public Kwadrat {
public:
	float h;
public:
	Prostokat(float wys, string naz, float pow, float b);
	~Prostokat();
	friend ostream & operator<<(ostream & ekran, Prostokat & b);
	
};